/**********************************************************************************************
* 版    权：上海金智晟东电力科技有限公司南京分公司
* 项目名称：
* 产品名称：
* 创建日期：2023年03月18日
* 创 建 人：zzg
* 文 件 名：pca9555.c
* 文件功能：PCA9555驱动
* 修 改 者：							日期：
* 备    注：
***********************************************************************************************/
//#include "comm.h"
#include "mytypes.h"
#include "pca9555.h"
#include "myiic.h"
//#include "os.h"
#include <stdio.h>
/**********************************************************************************************
* 函 数 名：void Pca9555Init(void)
* 功能描述：PCA9555初始化
* 输    入：
* 返    回：
* 设 计 者：zzg								日期：2023年03月18日
* 修 改 者：								日期：
***********************************************************************************************/
void Pca9555Init(void)
{
	uint8_t state, config_val, out_val;
	
	config_val = 0;
	Pca9555SendData(&config_val, Polarity_Port0, 1);							// 端口0组极性
	Pca9555SendData(&config_val, Polarity_Port1, 1);							// 端口1组极性
	config_val = 0xff;
	Pca9555SendData(&config_val, Config_Port0, 1);								// 端口0组模式
	config_val = 0xff;
	Pca9555SendData(&config_val, Config_Port1, 1);								// 端口1组模式
	//out_val = 0;
	//Pca9555SendData(&out_val, Output_Port0, 1);									// 端口0组输出
 	//out_val = 0xFF;
 	//Pca9555SendData(&out_val, Output_Port1, 1);									// 端口1组输出
}
/**********************************************************************************************
* 函 数 名：uint8_t Pca9555Check(void)
* 功能描述：PCA9555检测函数
* 输    入：
* 返    回：0:正常	1:异常
* 设 计 者：zzg								日期：2023年03月18日
* 修 改 者：								日期：
***********************************************************************************************/
//uint8_t Pca9555Check(void)
//{
//	uint8_t state=0;
//	
//	//检测PCA9555
//	IicStart();
//	IicSendByte(PCA9555_ADDR);
//	state = IicWaitAck();
//	IicStop();
//	
//	return state;
//}

/**********************************************************************************************
* 函 数 名：void Pca9555SendData(uint8_t *buf, uint8_t addr, int32_t len)
* 功能描述：PCA9555发送数据函数
* 输    入：buf:待传输数据指针
* 			addr:PCA9555端口组
* 			len:数据长度
* 返    回：
* 设 计 者：zzg								日期：2023年03月18日
* 修 改 者：								日期：
***********************************************************************************************/
void Pca9555SendData(uint8_t *buf, uint8_t addr, int32_t len)
{
#ifdef INCLUDE_SOFT_IIC
	IicSendData(buf, PCA9555_ADDR, addr, len);		//IIC发送数据函数
#else
	IIC_ByteWrite(PCA9555_ADDR, addr, buf);
#endif
}
/**********************************************************************************************
* 函 数 名：void Pca9555ReceData(uint8_t *buf, uint8_t addr, int32_t len)
* 功能描述：PCA9555接收数据函数
* 输    入：buf:待接收数据指针
* 			addr:PCA9555端口组
* 			len:数据长度
* 返    回：
* 设 计 者：zzg								日期：2023年03月18日
* 修 改 者：								日期：
***********************************************************************************************/
void Pca9555ReceData(uint8_t *buf, uint8_t addr, int32_t len)
{
#ifdef INCLUDE_SOFT_IIC
	IicReceData(buf, PCA9555_ADDR, addr, len);
#else
	IIC_BuffRead(PCA9555_ADDR, addr, buf, len);
#endif
}















